S’abonner à des évènements

Il existe dans Nova-Life: Amboise des actions déclenchées automatiquement par le serveur. Il est possible de s’abonner à ces actions pour appeler une fonction personnalisée lorsque l’action est déclenchée.

Pour se faire, il vous suffit de trouver l’action correspondante et de l’analyser. Elle peut se présenter sous la forme d’une action simple sans paramètres :

public Action OnMinutePassedEvent;

Ou d’une action plus complexe avec des paramètres :

public Action<Player, int, int, int> OnPlayerReceiveItemEvent;

Action sans paramètres

Dans le cas de l’action simple, aucun paramètre n’est à prendre en compte. Il vous suffit donc de créer une fonction sans paramètres :

public void CustomOnMinutePassed()
{
	// Le code que vous souhaitez déclenchez
}

Puis de l’abonner à l’évènement :

Nova.server.OnMinutePassedEvent += CustomOnMinutePassed;

Grâce à ceci, votre fonction CustomOnMinutePassed sera automatiquement appelée en même temps que l’action.

Action avec paramètres

Pour une action avec paramètres, la première chose à faire est de comprendre à quoi sert chacun d’entre eux. Reprenons notre action déclenchée à la réception d’un item.

public Action<Player, int, int, int> OnPlayerReceiveItemEvent;

Nous pouvons voir sur la documentation que nous avons 4 paramètres: 1 de type Player et 4 de type int ainsi que leur correspondance :

Type de paramètre Correspondance
Player Le joueur qui réceptionne l’item
int L’identifiant de l’item
int L’identifiant de l’emplacement de l’inventaire
int Le nombre d’items

Maintenant que nous savons à quoi correspond chaque paramètre, nous allons pouvoir créer notre méthode et y intégrer notre code :

public void CustomOnPlayerReceiveItem(Player player, int itemId, int slotId, int number)
{
	// Le code que vous souhaitez déclenchez
}

Maintenant que notre méthode est créée avec les paramètres correspondants à l’action à laquelle nous souhaitons l’abonner, il ne nous reste plus qu’à les lier :

Nova.server.OnPlayerReceiveItemEvent += CustomOnPlayerReceiveItem;

Grâce à ceci, votre méthode CustomOnPlayerReceiveItem sera déclenchée dès qu’un joueur recevra un objet dans son inventaire.

Désabonner une méthode

Pour désabonner une méthode, rien de plus simple. Il suffit simplement de retirer le lien entre les deux :

Nova.server.OnPlayerReceiveItemEvent -= CustomOnPlayerReceiveItem;

Votre méthode ne sera désormais plus déclenchée en même temps que l’action.